<?php
class UsersController extends AppController
{
	public $components = array('Acl', 'Auth');

	public $helpers = array('Html', 'Form');

	public function index()
	{
		$this->User->recursive = 0;
		$this->set('users', $this->paginate());
	}

	public function view($id = null)
	{
		if (! $id)
		{
			$this->Session->setFlash(__('Invalid User.', true));
			$this->redirect(array('action'=>'index'));
		}

		$this->set('user', $this->User->read(null, $id));
	}

	public function add()
	{
		if (! empty($this->data))
		{
			$this->User->create();

			if ($this->User->save($this->data))
			{
				$this->Session->setFlash(__('The User has been saved', true));
				$this->redirect(array('action'=>'index'));
			}
			else
			{
				$this->Session->setFlash(__('The User could not be saved. Please, try again.', true));
			}
		}
		else
		{
			$this->data['User']['is_active'] = true;
		}

		$this->set('groups', $this->User->Group->find('list', array('fields' => array('Group.groupname'))));
	}

	public function edit($id = null)
	{
		if (! $id && empty($this->data))
		{
			$this->Session->setFlash(__('Invalid User', true));
			$this->redirect(array('action'=>'index'));
		}

		if (! empty($this->data))
		{
			if ($this->User->save($this->data))
			{
				$this->Session->setFlash(__('The User has been saved', true));
				$this->redirect(array('action'=>'index'));
			}
			else
			{
				$this->Session->setFlash(__('The User could not be saved. Please, try again.', true));
			}
		}

		if (empty($this->data))
		{
			$this->data = $this->User->read(null, $id);
		}

		$projects = $this->User->Project->find('list');
		$groups = $this->User->Group->find('list');
		$this->set(compact('projects','groups'));
	}

	public function delete($id = null)
	{
		if (! $id)
		{
			$this->Session->setFlash(__('Invalid id for User', true));
			$this->redirect(array('action'=>'index'));
		}

		if ($this->User->del($id))
		{
			$this->Session->setFlash(__('User deleted', true));
			$this->redirect(array('action'=>'index'));
		}
	}

	public function login()
	{
	}

	public function logout()
	{
		$this->redirect($this->Auth->logout());
	}
}
?>
